/**
 * @file
 * @author  Tsin Smith <tsin.creator@gmail.com>
 *
 * @section DESCRIPTION
 *
 */

#ifndef __TSIN_LIBRARY_BULLETLINEROUTER_HPP__
#define __TSIN_LIBRARY_BULLETLINEROUTER_HPP__

#include <tsin/library/common.hpp>
#include <tsin/library/BulletRouter.hpp>

namespace tsin {

        class BulletRuntime;

        class LIBRARY_DLLEXPORT BulletLineRouter : public BulletRouter {
        public:
                virtual DynamicObject *copy();

                void init(float speed, float dangle = 0.0f, float starting = 0.0f);
                virtual void reinit();

                virtual void reset();
                virtual void route(BulletRuntime *bullet);

        private:
                float speed, dangle, starting;
        };

}

extern "C" LIBRARY_DLLEXPORT tsin::DynamicObject *bindLineRouter();

#endif /* __TSIN_LIBRARY_BULLETLINEROUTER_HPP__ */
